var packageName = "com.tencent.mm"; // 视频App的包名

// 打开视频App
launch(packageName);
toast('打开微信')

// App加载完成
waitForPackage(packageName);
toast('加载完成')
sleep(6000)


//打开发现
toast('打开发现')
id("icon_tv").className("android.widget.TextView").text("发现").findOne().parent().parent().click()
sleep(6000)

//点击视频号

var title =id("cgi").untilFind()
if(title){
    console.log('找到了');
    console.log(title[1].bounds().centerX());
    click(title[1].bounds().centerX(),title[1].bounds().centerY())
}else{
    console.log('没找到');
}
toast('打开视频号')
sleep(10000)

//点击个人
const ktr = id("ktr").findOne(5000)
if(ktr){
    ktr.click()
    toast('打开个人')
    sleep(5000)
}else{
    toast('没找到个人')
    back()
    sleep(2000)
    id("ktr").findOne(5000).click()
}


//循环查找是否有新消息（评论 点赞 私信）
while(true){
    id("mle").findOne().click()
    toast('打开私信')
    sleep(1000)
    console.log('打招呼');
    greet()
    console.log('私信');
    six()
    sleep(1000)
    idEndsWith("jtp").findOne().click()
    toast('打开消息')
    // 点赞回复操作
    message()
    // 私信回复操作
    review()
    back()
    sleep(1000)
}
    


// 评论回复函数
function review () {
    const rev = className("androidx.appcompat.app.a").desc("评论").findOne()
    rev.click()
    sleep(6000)
    requestScreenCapture(true)
    let hhjs = ''
    let nextText = ''
    let nextName = ''
    let nextText1 = ''
    let nextName1 = ''
    let isFind = false
    while(true){
        sleep(2000)
        refresh()
        hhjs = idEndsWith("hhj").find()
        console.log('hhjs'+hhjs.length);
        // 筛选掉 点赞 和 关注 的hhj
        hhjs = hhjs.filter(e=>{

            let index = ''
            if(e.child(1)){
                index = e.child(1).childCount()-1
            }
            return e.child(1)&&e.child(1).childCount()>=3&&e.child(1).child(index).child(0)&&e.child(1).child(index).child(0).childCount()>0&&e.child(1).child(index).child(0).child(1)&&(e.child(1).child(index).child(0).child(1).text() == '回复')
        })
        console.log(hhjs.length);
        hhjs.forEach(e=>console.log(e.child(1).child(e.child(1).childCount()-2).text()))
        // nextText = hhjs[0].child(1).child(hhjs[0].child(1).childCount()-2).text()||hhjs[0].child(1).child(1).text()
        // nextName = hhjs[0].child(1).child(0).child(0).child(0).text()
        console.log(nextText,nextName);
        sleep(2000)
        for(let i = 0;i<hhjs.length;i++){
            console.log(hhjs[i].bounds().bottom , hhjs[i].bounds().top);
            if(hhjs[i].bounds().bottom - hhjs[i].bounds().top<100){
                toast('坐标错误')
            }else{
                if(i==hhjs.length-1)return
                // 区域找色
                // 截取当前屏幕 找色
                const findC = findColors(hhjs[i])
                if(findC==123){
                    toast('没有新消息')
                    isFind=true
                    break;
                };
                sleep(2000)
            }
        }
        if(isFind) break;
        // 滑动
        if(hhjs.length>3){
            swipe(hhjs[0].bounds().centerX(),hhjs[hhjs.length-2].bounds().centerY(),hhjs[0].bounds().centerX(),hhjs[0].bounds().bottom,2000)
        }else{
            toast('没有了')
            findColors(hhjs[hhjs.length-1])
            break;
        }
        sleep(1000)
        hhjs = idEndsWith("hhj").find()
        console.log(hhjs.length);
        // 筛选掉 点赞 和 关注 的hhj
        hhjs = hhjs.filter(e=>{
            const index = e.child(1).childCount()-1
            return e.child(1)&&e.child(1).childCount()>=3&&e.child(1).child(index).child(0)&&e.child(1).child(index).child(0).childCount()>0&&e.child(1).child(index).child(0).child(1)&&(e.child(1).child(index).child(0).child(1).text() == '回复')
        })
        console.log(hhjs.length);
        // nextText1 = hhjs[0].child(1).child(hhjs[0].child(1).childCount()-2).text()||hhjs[0].child(1).child(1).text()
        // nextName1 = hhjs[0].child(1).child(0).child(0).child(0).text()
        // 到底了 结束循环
        if(id('bdv').findOne(2000)&&id('m3v').findOne(2000)&&id('i0a').findOne(2000)){
            console.log('到底了');
            toast('到底了')
            findColors(hhjs[hhjs.length-1])
            break;
        }
    }

}
    
// 消息回复函数
function message () {
    //回复点赞（私信+感谢）
    const nuw = id("nuw").className("android.widget.TextView").text("点赞").findOne(6000)
    click(nuw.bounds().centerX(),nuw.bounds().centerY())
    sleep(6000)
    let xie
    const xieList = id("o5s").text("谢谢").find();
    const filteredXieList = xieList.filter((e) => {
        return e.parent().parent().child(1).text() !== '关注了你';
    });
    filteredXieList.length?xie = filteredXieList[0]:xie = null
    console.log(xie);
    if(xie){
        toast('点赞成功')
        click(xie.bounds().centerX(),xie.bounds().centerY())
        sleep(3000)

        // 找到这个点赞的头像并点击
        console.log(xie.parent().parent().parent().child(0));
        const img = xie.parent().parent().parent().child(0)
        if(img){
            toast('点赞人头像')
            click(img.bounds().centerX(),img.bounds().centerY())
            sleep(3000)
            id("mlu").findOne(6000).click()
            sleep(3000)
            // 发送私信
            let input = id("bkk").className("android.widget.FrameLayout").findOne()
            if(input){
                input.child(0).setText('谢谢您的点赞')
                console.log("输入文字");
                sleep(3000)
                id("bql").findOne().click()
                console.log('发送');
                sleep(3000)
                back()
                sleep(5000)
                id("g5e").findOne(6000).click()
                sleep(3000)
                message()
            }
        }
    }else{
        toast('没有点赞')
    }


}


//已关注私信回复函数
function six () {
    var target = id("o_4").findOne(1000)
        if(target){
            console.log('找到了新消息');
            click(target.bounds().centerX(),target.bounds().centerY())
            sleep(10000)
            let newMsg = id("bn1").find()
            console.log(newMsg.length);
            let text
            if(newMsg[newMsg.length-1].child(0).text()){
               text = newMsg[newMsg.length-1].child(1).child(1).child(0).child(0).text()
            }else{
                text = newMsg[newMsg.length-1].child(0).child(1).child(0).child(0).text()
            }
            console.log('新消息'+text);
            sleep(3000)
            let res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + text);
                    if (res.statusCode != 200) {
                        log("请求失败: " + res.statusCode + " " + res.statusMessage);
                    } else {
                        let r_msg = res.body.json();
	                    let input = id("bkk").className("android.widget.FrameLayout").findOne()
                        if(input){
                            input.child(0).setText(r_msg.content)
                            console.log("输入文字");
                            sleep(3000)
                            id("bql").findOne().click()
                            console.log('发送');
                            sleep(3000)
                            back()
                            sleep(5000)
                            six()
                        }
					}
        }else{
            console.log('没找到');
            // let back = id("actionbar_up_indicator").findOne()
            // click(back.bounds().centerX(),back.bounds().centerY())
            back()
        }
}


//打招呼私信回复函数
function greet () {
    const gre = id("o_5").findOne(1000)
    if(gre){
        //进入打招呼
        click(gre.bounds().centerX(),gre.bounds().centerY())
        const o4 = id("o_4").findOne(3000)
        if(o4){
            click(o4.bounds().centerX(),o4.bounds().centerY())
            sleep(2000)
            let text = id("bkl").findOne().text()

             //请求获取发送信息
             let res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + text);
             if (res.statusCode != 200) {
                 log("请求失败: " + res.statusCode + " " + res.statusMessage);
                 last_msg = "初始化";
             } else {
                 let r_msg = res.body.json();
                 let input = id("bkk").className("android.widget.FrameLayout").findOne()
                 if(input){
                     input.child(0).setText(r_msg.content)
                     console.log("输入文字");
                     sleep(3000)
                     id("bql").findOne().click()
                     console.log('发送');
                     sleep(3000)
                     back()
                     sleep(3000)
                     o4Msg()
                 }
             }
        }else{
            console.log('没有打招呼了');
            let back = id("actionbar_up_indicator").findOne()
            click(back.bounds().centerX(),back.bounds().centerY())
            sleep(2000)
        }
    }else{
        console.log('没有打招呼');
        // let back = id("actionbar_up_indicator").findOne()
        // click(back.bounds().centerX(),back.bounds().centerY())
    }
}

//判断消息页面有没有消息
function o4Msg () {
    const o4 = id("o_4").findOne(6000)
    if(o4){
        click(o4.bounds().centerX(),o4.bounds().centerY())
        sleep(3000)
        let text = id("bkl").findOne().text()

        //请求获取发送信息
        let res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + text);
        if (res.statusCode != 200) {
            log("请求失败: " + res.statusCode + " " + res.statusMessage);
            last_msg = "初始化";
        } else {
            let r_msg = res.body.json();
            let input = id("bkk").className("android.widget.FrameLayout").findOne()
            if(input){
                input.child(0).setText(r_msg.content)
                console.log("输入文字");
                sleep(2000)
                id("bql").findOne().click()
                console.log('发送');
                sleep(2000)
                back()
                sleep(2000)
            }
        }
    }else{
        console.log('没有打招呼了');
        // let back = id("actionbar_up_indicator").findOne()
        // click(back.bounds().centerX(),back.bounds().centerY())
        sleep(1000)
    }
}

// 强制更新节点函数 如果页面控件可见找不到可以启用布局分析再关闭
function refresh () {
    sleep(1000)
    app.sendBroadcast("inspect_layout_bounds");
    sleep(3000);
    back();
    sleep(1000);
}

function findColors (e) {
    requestScreenCapture(true)
    const img = captureScreen()
    images.save(img,"/sdcard/screenshot.png")
    const less = img.getWidth() / e.bounds().width()
    const vh = img.getHeight() / device.height
    console.log('top'+Math.ceil((e.bounds().top)*vh))
    console.log('height'+Math.ceil((e.bounds().height())*vh))
    console.log('图片高度'+img.getHeight());
    if(Math.ceil((e.bounds().top)*vh)+Math.ceil((e.bounds().height())*vh)>img.getHeight())return
    const red = findColor(img, "#FA5151",{
        region:[e.bounds().left,Math.ceil((e.bounds().top)*vh),Math.ceil((e.bounds().width())*less),Math.ceil((e.bounds().height())*vh)],
        threshold:10
    });
    console.log(red);
    if(red){
        console.log('找到',e.child(1).child(e.child(1).childCount()-2).text());
        return 123
    }else{
        console.log('没找到',e.child(1).child(e.child(1).childCount()-2).text());
        // 点击爱心
        const ix = e.child(1).child(e.child(1).childCount()-1).child(1)
        if(ix){
            click(ix.bounds().centerX(),ix.bounds().centerY())
            sleep(2000)
        // 点击回复
        const rec =  e.child(1).child(e.child(1).childCount()-1).child(0)
        click(rec.bounds().centerX(),rec.bounds().centerY())
        sleep(2000)
        
        // 输入文字
        toast('打开布局弹窗')
        app.sendBroadcast("inspect_layout_bounds");
        sleep(2000);
        toast('返回')
        back();
        sleep(1000);
        const ipt = id("c6v").findOne(6000)
        if(ipt){
            toast('输入文字')
            ipt.setText('1')
        }else{
            toast('没找到输入框')
        }
        sleep(2000)
        // 点击回复
        
        const lz3 = ipt.parent().parent().child(3)
        if(lz3){
            toast('点击回复')
            console.log(lz3.bounds().centerX(),lz3.bounds().centerY())
            click(lz3.bounds().centerX(), lz3.bounds().centerY());
        }else{
            toast('没找到回复按钮')
        }
        sleep(2000)
        }
    }
}
